package com.bs.auth.utils;

import cn.hutool.core.collection.CollectionUtil;
import io.micrometer.core.instrument.util.StringUtils;
import lombok.SneakyThrows;

import java.util.Collection;

/**
 * @author bingshao
 * @date 2022/9/8
 **/
public class Assert {

    public static void isNull(Object o, String msg) {
        if (o != null) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isNotNull(Object o, String msg) {
        if (o == null) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isEmpty(Collection<?> collection, String msg) {
        if (CollectionUtil.isNotEmpty(collection)) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isNotEmpty(Collection<?> collection, String msg) {
        if (CollectionUtil.isEmpty(collection)) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isBlank(String s, String msg) {
        if (StringUtils.isNotBlank(s)) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isNotBlank(String s, String msg) {
        if (StringUtils.isBlank(s)) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isTrue(boolean condition, String msg) {
        if (!condition) {
            throw new IllegalArgumentException(msg);
        }
    }

    @SneakyThrows
    public static void isError(String msg) {
        throw new RuntimeException(msg);
    }
}
